Disk drives are configured to read data by scanning the magnetic surface of a disk. Whether data is accurately read by the disk drive is dependent upon several factors, including the condition of the surface of the disk and the absence/presence of foreign articles, such as dust, on the disk. Errors may be introduced into the data during a read operation because of surface abnormalities, abrasions, dust, or other obstruction between the disk and the read-head.
Data errors include hard errors and soft errors. Hard errors, by definition, repeat with every read operation. Hard errors usually occur because of a persistent or permanent condition of the disk, such as an abrasion. Soft errors are data errors that do not necessarily repeat with every read operation, although they may reoccur. Soft errors may be caused by transient dust on the disk or other non-permanent conditions. Error correction coding is a technique that checks for and/or corrects hard and soft errors.
In the technique, the original data is broken up into groups (typically corresponding to the size of a disk sector) and an error correcting code (ECC) is derived for each group. The ECC is based upon the data and can be used to correct errors introduced during a read operation, provided that the errors do not exceed the correction capability of the ECC. The data and the ECC are written to the disk for use during the read operation.
The disk drive is configured to use the ECC to correct errors that arise during the read operation. In general, the ability of the disk drive to correct data errors using the ECC is limited by the size of the area of data that includes all of the errors, called the error zone. It would be desirable to provide a technique to reduce the size of the error zone to increase the likelihood that errors can be corrected by ECC.